package cn.sytton.taffecloud.service.system.entity;

import cn.sytton.taffecloud.common.base.annotation.NewId;
import cn.sytton.taffecloud.common.model.base.FieldEntity;
import cn.sytton.taffecloud.common.db.validation.Field;
import cn.sytton.taffecloud.common.db.validation.NotDuplicate;
import cn.sytton.taffecloud.common.excel.annotation.ImportExcel;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

import javax.validation.constraints.NotNull;

/**
 * 角色entity sys_role
 *
 * @author skyrock
 */
@EqualsAndHashCode(callSuper = true)
@Data
@NoArgsConstructor
@AllArgsConstructor
@NotDuplicate(value = {
        @Field(name = {"roleCode"}, message = "角色编号[ %s ]已存在"),
        @Field(name = {"roleName"}, message = "角色名字[ %s ]已存在")},
        excludeByField="roleId")
public class RoleEntity extends FieldEntity {

    @NewId
    @NotNull(message = "角色ID不能为空")
    private String roleId;    // 角色ID

    @ImportExcel("角色编号")
    @NotNull(message = "角色编号不能为空")
    private String roleCode;    // 编号

    @ImportExcel("角色名称")
    @NotNull(message = "角色名称不能为空")
    private String roleName;    // 名称

    @ImportExcel(value = "角色类型")
    private Integer roleType = 1;    // 类型, 0:系统级, 1:用户级

    @ImportExcel(value = "角色状态")
    private Integer roleStatus = 1;    // 状态, 0:禁用, 1:启用 


    //-----以下是关联属性-----
    private Integer userCount = 0; //用户数量
}
